*DO File For "After the Dust Settles: The Infant Health Impacts of Dust Storms"
*Published in the Journal of the Association of Environmental and Resource Economists
*Benjamin A. Jones (bajones@unm.edu)
*May 2020

clear all
set more off
set maxvar 10000
set matsize 11000
*load data:
use "dust_data.dta"
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Table 1
estpost summarize lowbirthwt premature birthwt gestation TOTAL_num_events age educ hsdropout teenmom smoke mhispanic black ///
	multiplebirth birthorder multiplebirth malechild daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 ///
	daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 ///
	daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus ///
	
esttab ., cells("mean sd count") nomtitle nonumber
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Table 2
reghdfe lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm educ hsdropout age teenmom smoke mhispanic black birthorder multiplebirth malechild) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm educ hsdropout age teenmom smoke mhispanic black birthorder multiplebirth malechild) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe birthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm educ hsdropout age teenmom smoke mhispanic black birthorder multiplebirth malechild) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe gestation any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm educ hsdropout age teenmom smoke mhispanic black birthorder multiplebirth malechild) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Table 3
reghdfe lowbirthwt any_dust_first any_dust_second any_dust_third daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_first any_dust_second any_dust_third) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_first any_dust_second any_dust_third daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_first any_dust_second any_dust_third) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe birthwt any_dust_first any_dust_second any_dust_third daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_first any_dust_second any_dust_third) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe gestation any_dust_first any_dust_second any_dust_third daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_first any_dust_second any_dust_third) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Table 4
//Panel A
reghdfe lowbirthwt i.any_dust_storm##c.PovertyPercentAllAges daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.PovertyPercentAllAges) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature i.any_dust_storm##c.PovertyPercentAllAges daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.PovertyPercentAllAges) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel B
reghdfe lowbirthwt i.any_dust_storm##c.county_hsgrad daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.county_hsgrad) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature i.any_dust_storm##c.county_hsgrad daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.county_hsgrad) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel C
reghdfe lowbirthwt i.any_dust_storm##c.black daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.black) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature i.any_dust_storm##c.black daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.black) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel D
reghdfe lowbirthwt i.any_dust_storm##c.mhispanic daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus  black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.mhispanic) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature i.any_dust_storm##c.mhispanic daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.mhispanic) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel E
reghdfe lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1 & STATE_FIPS==6, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1 & STATE_FIPS==6, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel F
reghdfe lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1 & STATE_FIPS!=6, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1 & STATE_FIPS!=6, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Table 5
reghdfe PM25_concentration month_of_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus wind_dir_0_120 wind_dir_120_240 wind_dir_240_360 wind_speed_0_2 wind_speed_2_4 wind_speed_4plus if dust_ever==1, absorb(i.FIPS i.month i.year) vce(cluster FIPS)
estout, keep(month_of_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe PM25_concentration i.num_events daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus wind_dir_0_120 wind_dir_120_240 wind_dir_240_360 wind_speed_0_2 wind_speed_2_4 wind_speed_4plus if dust_ever==1, absorb(i.FIPS i.month i.year) vce(cluster FIPS)
estout, keep(*.num_events) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Table 6
//Panel A
gen test=STATE_FIPS*year
clogit lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild i.test if dust_ever==1, group(FIPS) vce(cluster FIPS)
margins, dydx(any_dust_storm) post
estout, keep(any_dust_storm) cells(b(star fmt(3)) se(par fmt(2))) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

clogit premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild i.test if dust_ever==1, group(FIPS) vce(cluster FIPS)
margins, dydx(any_dust_storm) post
estout, keep(any_dust_storm) cells(b(star fmt(3)) se(par fmt(2))) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel B
reghdfe lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS##i.birth_month_yr i.STATE_FIPS##i.year) vce(cluster FIPS birth_month_yr)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS##i.birth_month_yr i.STATE_FIPS##i.year) vce(cluster FIPS birth_month_yr)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel C
reghdfe lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS##i.conception_month_yr i.STATE_FIPS##i.year) vce(cluster FIPS conception_month_yr)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS##i.conception_month_yr i.STATE_FIPS##i.year) vce(cluster FIPS conception_month_yr)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel D
reghdfe lowbirthwt any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_state==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature any_dust_storm daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_state==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(any_dust_storm) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

//Panel E
reghdfe lowbirthwt i.any_dust_storm##c.TOTAL_num_warnings daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.TOTAL_num_warnings) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)

reghdfe premature i.any_dust_storm##c.TOTAL_num_warnings daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
estout, keep(1.any_dust_storm 1.any_dust_storm#c.TOTAL_num_warnings) cells(b(star) se(par)) stats(r2 N) starlevels(* 0.10 ** 0.05 *** 0.001)
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Figure 1
//Done in ESRI ArcMAP using the dust storm event data overlayed onto a US counties shapefile
********************************************************************************************************************************************************************************************************************************************************

********************************************************************************************************************************************************************************************************************************************************
*Figure 2
quietly tabulate TOTAL_num_events, generate(new_)
gen new_7plus=new_7+new_8+new_9+new_10+new_11+new_12

reghdfe lowbirthwt new_2 new_3 new_4 new_5 new_6 new_7plus daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
nlcom (_1: _b[new_2]*1) ///
	  (_2: _b[new_3]*1) ///
	  (_3: _b[new_4]*1) ///
	  (_4: _b[new_5]*1) ///
	  (_5: _b[new_6]*1) ///
	  (_6plus: _b[new_7plus]*1) ///
	  , post
est store nlcom1
coefplot (nlcom1), vertical yline(0) recast(bar) ciopts(recast(rbar))

reghdfe premature new_2 new_3 new_4 new_5 new_6 new_7plus daily_avgtemp_less40 daily_avgtemp_40_45 daily_avgtemp_45_50 daily_avgtemp_50_55 daily_avgtemp_55_60 daily_avgtemp_60_65 daily_avgtemp_65_70 daily_avgtemp_70_75 daily_avgtemp_75_80 daily_avgtemp_80plus daily_avgprecip_less15 daily_avgprecip_15_3 daily_avgprecip_3_45 daily_avgprecip_45_6 daily_avgprecip_6_75 daily_avgprecip_75plus mhispanic black educ hsdropout smoke age teenmom birthorder multiplebirth malechild if dust_ever==1, absorb(i.FIPS i.STATE_FIPS##i.year) vce(cluster FIPS)
nlcom (_1: _b[new_2]*1) ///
	  (_2: _b[new_3]*1) ///
	  (_3: _b[new_4]*1) ///
	  (_4: _b[new_5]*1) ///
	  (_5: _b[new_6]*1) ///
	  (_6plus: _b[new_7plus]*1) ///
	  , post
est store nlcom2
coefplot (nlcom2), vertical yline(0) recast(bar) ciopts(recast(rbar))
********************************************************************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************************************************************
